home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / aie9009.zip / DATAREP.ZIP / MANUAL.LNI < prev    next >
Text File  |  1990-02-22  |  49KB  |  1,062 lines

  1. ¢7 I
  2. ¢11h
  3. ¢?20 J
  4. ¢3300t
  5. ¢1;3300r
  6. ¢1;65536s
  7. ¢0d
  8.  
  9.  
  10.  
  11.  
  12.  
  13.   ¢12m
  14.  
  15.  
  16.  
  17.  
  18.                                        How-To-Use-It-Manual
  19.  
  20.  
  21.                            Stimulus Generation and Association Programs
  22.  
  23.  
  24.                               Brown University Neural Modeling Group
  25.  
  26.  
  27.                                             Release 2.0
  28.  
  29.                                          BSB and ASSOCIATE
  30.  
  31.  
  32.                                           March 29, 1989
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.                                          James A. Anderson
  40.  
  41.  
  42.                           Department of Cognitive and Linguistic Sciences
  43.  
  44.                                                 and
  45.  
  46.                                      Department of Psychology,
  47.  
  48.  
  49.  
  50.  
  51.                                          Brown University
  52.  
  53.  
  54.                                        Providence, RI 02912
  55.  
  56.  
  57.  
  58.  
  59.                                (c) Copyright James A. Anderson, 1989
  60.  
  61.  
  62.                                                                   Page 2
  63.  
  64.  
  65.        Introduction.
  66.  
  67.             This manual will tell you how  to  use  a  set  of  programs  developed  at  the
  68.        Department  of Cognitive and Linguistic Sciences, Brown University.  The programs are
  69.        research programs designed to generate, maintain, learn, and use sets of stimuli  and
  70.        matrices used in neural modelling research.
  71.  
  72.             The programs are written in VMS Pascal to run on a VAX.  There are two  programs
  73.        of major interest.  One is called ASSOCIATE and generates the matrices that associate
  74.        pairs of vectors.  (Sometimes a version of this program that involved a file transfer
  75.        through  an  MS/DOS system will name it ASSOC.  Same program.) Actually, the internal
  76.        representation of a matrix is in the form of a FILE of  a  Pascal  data  type  called
  77.        Neuron,  but  acts mathematically like a matrix.  The other is a program with several
  78.        parts.  It is called BSB.  One part generates stimuli which are large state  vectors.
  79.        These  state  vectors represent strings of 25 characters in a 200 dimensional system.
  80.        Once generated, the  state  vectors  can  be  associated  together  using  ASSOCIATE.
  81.        Another  part  realizes  the  dynamics  of  the  simple  non-linear  model called the
  82.        `Brain-state-in-a-Box'.  (See Anderson, Silverstein, Ritz and Jones,  1977,  Anderson
  83.        and Mozer, 1981; Anderson, 1986; and Anderson and Murphy, 1986)
  84.  
  85.  
  86.        Files
  87.  
  88.             Several files must be ASSIGNed so the programs will know where to read and write
  89.        the  data.  Below is a set of ASSIGN statements in the appropriate form.  The example
  90.        chosen is the file assignments from the `OHMS'  demonstration,  though  the  OHMS.COM
  91.        file actually contains more material than this, since it also runs the demonstration.
  92.        These VMS commands should be put in a command file (in  this  case,  OHMS.COM)  which
  93.        makes the appropriate assignments for convenience.
  94.  
  95.             $assign fohms.stm ffile
  96.             $assign gohms.stm gfile
  97.             $assign tohms.stm tfile
  98.             $assign nohms.neu nfile
  99.  
  100.        Then execute the command file by typing @OHMS to make  the  assignments.   There  are
  101.        enough  files  to  make life complicated unless some systematic way is found to label
  102.        the files.
  103.  
  104.             By convention, the input and output vectors are given the extension  `.STM'  and
  105.        the  file  containing the matrix are given the extension `.NEU'.  As a general point,
  106.        the files constructed with these programs can be quite large.  In the 200 dimensional
  107.        system the files associated with the matrix are 633 blocks long.
  108.  
  109.  
  110.        Making the Stimuli using BSB.
  111.  
  112.             The first step in making stimuli is to RUN BSB.  The program will ask you if you
  113.        are  using a VT100 or not.  (I am assuming you are in this manual.) Then some initial
  114.        information appears.  The general pattern of  displays  in  BSB  is  to  have  status
  115.        information  on  the  top 5 lines of the screen and the command prompts on the bottom
  116.        line.  Since the author of these  programs  was  influenced  by  UCSD  Pascal  at  an
  117.        impressionable  age, extensive use is made of self documenting prompts.  For example,
  118.        'T)hreshold' means that if 'T' (or 't') is typed at  the  command  prompt  ('>')  the
  119.        threshold  interpretation  parameter  can  be  changed from its default.  In general,
  120.        typing a single letter, followed by <Return> will cause an action.  All commands  can
  121.        be  upper  or lower case and most are protected to some extent (not totally!) against
  122.  
  123.  
  124.                                                                   Page 3
  125.  
  126.  
  127.        erroneous inputs.  Not all commands appear on the prompt lines, for reasons of space,
  128.        particularly  for  setting  some  of  the  less  frequently  used  parameters  in the
  129.        simulation.
  130.  
  131.             At first, there are no files present for BSB to work with.  Let  us  assume  you
  132.        want  to  create  a  series of stimuli for future use.  The prompt line tells you how
  133.        many stimuli are present in the F File, the G File, and the T File.  When the program
  134.        first  appears,  these  values  are  all  zero.  F File and G File have the customary
  135.        meanings they have in our neural modelling literature:  i.e.  the F File is the input
  136.        set  of  state vectors and the G File is the output set of state vectors.  The T file
  137.        contains a set of 'Test' vectors, usually partial input stimuli, which  are  used  to
  138.        test the reconstructive and processing powers of the system.
  139.  
  140.             Although this simple form of our programs only  performs  autoassociation,  more
  141.        complex versions can have different input and output sets.
  142.  
  143.             Input vectors are constructed from strings of characters.  We  will  assume  the
  144.        system  is  200  dimensional.   A character in the string is represented by its ASCII
  145.        number, i.e.  'a' is 97, '5' is 53,  '='  is  61,  and  so  on.   These  numbers  are
  146.        converted  into binary representation, so 'a' becomes '01100001'.  Then the zeros are
  147.        replaced with minus ones, so we can maintain rough equality of  numbers  of  positive
  148.        and  negative  elements  which  is  convenient for the models, so the actual internal
  149.        representation of
  150.  
  151.                  'a' ---> -1,1,1,-1,-1,-1,-1,1.
  152.  
  153.             Each character requires 8 vector elements, so a 200 dimensional system  contains
  154.        enough  elements  for  25 characters.  The parity bit is computed but not used in the
  155.        simulations at present.  One reason for its presence, is that eight  bits  allow  the
  156.        construction  of  `orthogonal'  character  representations,  which can sometimes be a
  157.        convenience.  If anyone wanted to actually use these programs for anything substatial
  158.        it  is strongly recommended that a less arbitrary way of coding letters be used.  The
  159.        state vectors contain single precision floating point  numbers.   Currently  no  more
  160.        than  100  stimuli  are allowed in any one file but this can be easily changed in the
  161.        programs if necessary.
  162.  
  163.             The technically inclined might like to know that stimuli  are  a  Pascal  Record
  164.        composed of two pieces:
  165.  
  166.                  CONST Dimensionality = 200;
  167.  
  168.                  TYPE  Vector    = ARRAY [1..Dimensionality] OF REAL;
  169.  
  170.                        String    = PACKED ARRAY [1..60] OF CHAR;
  171.  
  172.                        Stimulus  = RECORD
  173.                                    Name: String;
  174.                                    Val : Vector;
  175.                                    END;
  176.  
  177.  
  178.  
  179.                                                                   Page 4
  180.  
  181.  
  182.                            Figure 1.  Initial appearance of the screen.
  183.  
  184.                                        ---------------------
  185.  
  186.        BSB Neural Net Programs. 3-89  B)SB.  C)hange. E)xit. H)elp. 
  187.        L)ist. M)ode. N)eurons. R)ead. S)ave. T)hreshold.  W)rite.
  188.         Threshold:  5.0E-01  F File:    0  G File:    0  T File:    0
  189.        NO NEURON FILE.  Display TF. 
  190.  
  191.        Initializing Files.
  192.        Reading neuron and stimulus files from disk.
  193.        Reading F file.
  194.        Reading G file.
  195.        Reading T file.
  196.        Reading neuron file (autoassociative).
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.        C>
  206.  
  207.                                        ---------------------
  208.  
  209.  
  210.  
  211.             The program will automatically look for the assigned stimulus and neuron  files,
  212.        and  write  its  progress  to  the  screen.  If it doesn't find a file, it will write
  213.        'Stimulus file not found' to the command line (i.e.  the 'C>' line).  You may have to
  214.        watch  carefully  to  see  this line appear, and then disappear when the next file is
  215.        read.  The information at the top of the screen will also inform you of progress.  In
  216.        the example, there are no stimuli in the F file, G file, and T file and this is noted
  217.        in the third line on the screen.  There is also a comment that there  is  'NO  NEURON
  218.        FILE' on the fourth line.
  219.  
  220.             To contruct a stimulus, type 'C' from the first command level.  This allows  you
  221.        to  'C)hange'  the stimuli in the Files, which currently contain no stimulus vectors.
  222.        There are a number of options in 'C)hange' to allow you to do various  useful  things
  223.        to the stimuli.
  224.  
  225.             Suppose you want to make a new stimulus, say the first stimulus in the  F  File.
  226.        Type  'R',  for  'Replace.'  The program will then prompt you as to which stimulus to
  227.        replace.  If you say 'F1', the F[1] position in the F File (which starts off  as  all
  228.        blanks)  will be replaced with what you type and the appropriate state vector will be
  229.        constructed.  Figure 2 shows the screen after the contents of  several  vectors  (f1,
  230.        f2,  and  f3)  have  been replaced with ASCII character strings and f4 is about to be
  231.        replaced.  The names of f1, f2 and f3 were listed and appear in  the  center  of  the
  232.        screen.
  233.  
  234.  
  235.  
  236.  
  237.  
  238.                                                                   Page 5
  239.  
  240.  
  241.                       Figure 2. Appearance after several f stimuli are made.
  242.  
  243.                                        --------------------
  244.  
  245.        Template: 1234567890123456789012345
  246.        New     : This will be f4.
  247.  
  248.  
  249.  
  250.  
  251.  
  252.           F[ 1].  This is stimulus f1.____  G[ 1].
  253.           F[ 2].  This is stimulus f2.____  G[ 2].
  254.           F[ 3].  And this is f3._________  G[ 3].
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.        Replace which stimulus (set, number) :  f4
  269.  
  270.                                        --------------------
  271.  
  272.  
  273.  
  274.             After you choose the stimulus to replace, 'Template:' will appear at the top  of
  275.        the  screen.   This  is  a  set  of  25  digits  to  serve  as  a reference marks for
  276.        constructing your stimulus.  Underneath it is 'New     :' which is where  the  cursor
  277.        is  and  where  you  can  write the new string.  Any ASCII character except '_'can be
  278.        placed here and will be represented as its appropriate byte.  The ASCII character '_'
  279.        is  represented  in the vector as all zeros.  If you hit return before the end of the
  280.        string, the vector will be filled out with zeros, represented as underlines.  If  you
  281.        type  in  more  than  25  characters,  the  excess  will be ignored.  Remember to use
  282.        <Delete> to remove characters from a line, as you always do on  DEC  systems.   Using
  283.        the  <Backspace>  key  will  insert  non-printing  control  characters into the line,
  284.        causing erratic behavior of the system that is difficult to detect.
  285.  
  286.             After you have typed in a few stimuli, you can see the current set by typing 'L'
  287.        for 'L)ist'.  This will list either the F file and the G File or the T file and the F
  288.        file, depending on which M)ode you have chosen.  If there are more stimuli than  will
  289.        fit on the screen you can move the file B)ackwards or F)orwards by typing 'b' or 'f'.
  290.        Typing any other letter will return you to where you were.  The listing  will  remain
  291.        on the screen for reference until new information has to be written over it.
  292.  
  293.                  Briefly the commands in C)hange are:
  294.  
  295.                  A)dd.  Form a state  vector  as  the  sum  of  other  state  vectors.   The
  296.             resulting  vector values are divided by the number in the sum (i.e.  the average
  297.             of the vectors is taken).  The '.Name' of this type of state vector will  appear
  298.  
  299.  
  300.                                                                   Page 6
  301.  
  302.  
  303.             in the L)isting as, for example, 'Sum f01 f02 f03' if it was the sum of stimulus
  304.             vectors F[1], F[2], and F[3].  Up to 16 vectors can be summed.
  305.  
  306.                  C)opy.  Copy a state vector in  one  location  to  another  location.   The
  307.             program will prompt you for the stimulus to be copied and where to put it.
  308.  
  309.                  E)dit.  This useful  command  will  let  you  'edit'  an  already  existing
  310.             stimulus.   It  will ask you for the stimulus number to edit.  It will then give
  311.             the old stimulus as the template and let you type  in  the  new  stimulus  right
  312.             below  it.   When you type <Return> the new stimulus vector will replace the old
  313.             one.
  314.  
  315.                  I)ndividual values.  Will show the individual element values.  The elements
  316.             arranged  on  a  byte per line with the number of the first and last elements on
  317.             the line numbered on  left  and  right  sides  of  the  screen,  and  the  ASCII
  318.             interpretation of the byte on the left.  This command has its own command line.
  319.  
  320.                       C)hoose chooses which vector to show.
  321.  
  322.                       D)isplay displays the elements.
  323.  
  324.                       M)ode (see below).
  325.  
  326.                       Q)uit returns to C)hange.
  327.  
  328.                       T)hreshold (see below).
  329.  
  330.                       X)change allows you to change individual values.
  331.  
  332.                  L)ist.  Lists the state vectors in the files.  If  the  display  is  in  FG
  333.             mode,  the  F  File and the G File will be listed.  If the display is in T mode,
  334.             the T File and the F File will be listed.  If more than 16 vectors are  present,
  335.             only  sixteen  at a time will be shown.  The 16 stimuli displayed can be shifted
  336.             forward or backward by typing 'F' or 'B'.  L)ist  can  be  left  by  typing  any
  337.             character other than 'F' or 'B'.
  338.  
  339.                  M)ode.  Change listing mode from displaying the F File and the  G  File  to
  340.             displaying the T File and the F File or vice versa.
  341.  
  342.                  Q)uit.  Return to wherever you entered C)hange from.  C)hange can  also  be
  343.             entered from BSB.
  344.  
  345.                  R)eplace.  Replace a member of one of the files with a new stimulus.
  346.  
  347.                  S)ave.  Save the file of stimuli to a disk file.  The program  will  prompt
  348.             you  as  to  which  file(s)  you want to save.  The saved file will be given the
  349.             names you ASSIGNed to it earlier.  If there is  already  a  file  of  that  name
  350.             present,  VMS  will  give  the new file a later version number.  For example, if
  351.             F15.STM;2 is the ASSIGNed initial stimulus file, if you S)ave a later version of
  352.             the  file,  it  will  get  the  name  F15.STM;3,  and  so on.  If you purge your
  353.             directory, you will delete the earlier versions of  the  stimulus  file.   Don't
  354.             forget to S)ave your work!
  355.  
  356.                  >>>The program does NOT automatically save new stimuli.<<<
  357.  
  358.  
  359.                                                                   Page 7
  360.  
  361.  
  362.                  T)emplate.  Sometimes it is convenient to use a template other than  digits
  363.             to  make  remembering what goes where easier.  T)emplate allows you to make your
  364.             own string of ASCII characters to serve as a template, or to use a member of one
  365.             of the Stimulus files as a model for a template.
  366.  
  367.  
  368.        Using ASSOCIATE to Make a New Learning Matrix.
  369.  
  370.             Suppose you have constructed a set of F and G stimuli.  You have saved  them  to
  371.        appropriate disk files, and now wish to form the association matrix between the input
  372.        and output sets.  This is done with the program named ASSOCIATE.  ASSOCIATE can  take
  373.        sizeable  amounts  of  computer  time,  so  be  careful!   To  learn  a set of 12 200
  374.        dimensional vectors using the Widrow-Hoff error correction procedure for a  total  of
  375.        500  presentations  can  take 10 to 15 minutes of VAX CPU time, even if the system is
  376.        partially connected.  Also the data files ASSOCIATE automatically  creates  to  store
  377.        the  results  are  very large (633 blocks in a 200 dimensional system) so be sure you
  378.        have enough free space in your directory to write such a large  file,  otherwise  the
  379.        results of all the computing may be lost.
  380.  
  381.             If you RUN ASSOCIATE, first the F and G files will be listed so you can  see  if
  382.        they  are  satisfactory.   A  listing  of  a  session  using ASSOCIATE to generate an
  383.        Association matrix follows.  The data set is a set of ambiguous descriptors  used  in
  384.        the disambiguation demonstration.
  385.  
  386.  
  387.                                                                   Page 8
  388.  
  389.  
  390.        ASSOCIATE program.  March 19, 1989.
  391.  
  392.        The program is reading the FFILE.
  393.        The dimensionality of the system is 200
  394.  
  395.        The program is reading the GFILE.
  396.  
  397.        F and G stimuli used.
  398.  
  399.         F[ 1] : BaseballGameBat BallDiamd
  400.         G[ 1] : BaseballGameBat BallDiamd
  401.  
  402.         F[ 2] : Vampire MythBat NiteDracu
  403.         G[ 2] : Vampire MythBat NiteDracu
  404.  
  405.         F[ 3] : Animal  LiveBat WingFlyng
  406.         G[ 3] : Animal  LiveBat WingFlyng
  407.  
  408.         F[ 4] : Poker   GameBeerTablCards
  409.         G[ 4] : Poker   GameBeerTablCards
  410.  
  411.         F[ 5] : Tennis  GameCortBallRackt
  412.         G[ 5] : Tennis  GameCortBallRackt
  413.  
  414.         F[ 6] : Dancing RichPrtyBallSocty
  415.         G[ 6] : Dancing RichPrtyBallSocty
  416.  
  417.         F[ 7] : GeoShapeTwoDCrclSqreDiamd
  418.         G[ 7] : GeoShapeTwoDCrclSqreDiamd
  419.  
  420.         F[ 8] : GeoModelTreDSphrBallTetra
  421.         G[ 8] : GeoModelTreDSphrBallTetra
  422.  
  423.         F[ 9] : ExpJewelRichRubyOpalDiamd
  424.         G[ 9] : ExpJewelRichRubyOpalDiamd
  425.  
  426.        Seed for RN generator           : 123123
  427.        Number of associations to learn : 100
  428.        Use CORRECTION procedure? Y or N: y
  429.        Use old Nfile as start? Y or N  : n
  430.        Number of synapses              : 100
  431.        Setup completed.
  432.  
  433.           10  Nr:    8   Cosine:  5.16E-01
  434.           20  Nr:    5   Cosine:  9.01E-01
  435.           30  Nr:    4   Cosine:  9.48E-01
  436.           40  Nr:    1   Cosine:  9.60E-01
  437.           50  Nr:    2   Cosine:  9.25E-01
  438.           60  Nr:    6   Cosine:  9.47E-01
  439.           70  Nr:    5   Cosine:  9.87E-01
  440.           80  Nr:    2   Cosine:  9.74E-01
  441.           90  Nr:    4   Cosine:  9.97E-01
  442.          100  Nr:    3   Cosine:  9.70E-01
  443.  
  444.        Accuracy of recall of input set.
  445.  
  446.          1  Name: BaseballGameBat BallDiamd 
  447.  
  448.  
  449.                                                                   Page 9
  450.  
  451.  
  452.          Cosine:  9.80E-01  Length:  1.30E+01
  453.  
  454.          2  Name: Vampire MythBat NiteDracu 
  455.          Cosine:  9.93E-01  Length:  1.27E+01
  456.  
  457.          3  Name: Animal  LiveBat WingFlyng 
  458.          Cosine:  9.84E-01  Length:  1.28E+01
  459.  
  460.          4  Name: Poker   GameBeerTablCards 
  461.          Cosine:  9.97E-01  Length:  1.36E+01
  462.  
  463.          5  Name: Tennis  GameCortBallRackt 
  464.          Cosine:  9.78E-01  Length:  1.21E+01
  465.  
  466.          6  Name: Dancing RichPrtyBallSocty 
  467.          Cosine:  9.94E-01  Length:  1.33E+01
  468.  
  469.          7  Name: GeoShapeTwoDCrclSqreDiamd 
  470.          Cosine:  9.70E-01  Length:  1.16E+01
  471.  
  472.          8  Name: GeoModelTreDSphrBallTetra 
  473.          Cosine:  9.97E-01  Length:  1.33E+01
  474.  
  475.          9  Name: ExpJewelRichRubyOpalDiamd 
  476.          Cosine:  9.93E-01  Length:  1.33E+01
  477.  
  478.        Writing to neuron output file.
  479.  
  480.  
  481.                                                                  Page 10
  482.  
  483.  
  484.             The Prompts are mostly self explanatory.
  485.  
  486.             1.  Seed starts off the random number generator.  Pairs of associations from the
  487.        set  of stimulus pairs are presented randomly.  A particular sequence can be repeated
  488.        if the same seed is used.
  489.  
  490.             2.  The number to be learned depends on the number  of  items  in  the  stimulus
  491.        sets.   If the Widrow-Hoff error correction procedure is used, about 30 presentations
  492.        per pair is a good place to start.  If  the  linear  associator  is  used,  only  one
  493.        presentation of each pair is necessary.
  494.  
  495.             3.  Correction Procedure.  If 'Y'  or  'y',  the  Widrow-Hoff  error  correction
  496.        procedure  will  be  used,  otherwise, the linear associator without error correction
  497.        will be used.
  498.  
  499.             4.  Used Assigned Ninfile.  If 'Yes', a previously constructed neuron file  will
  500.        be  used  as  a starting point, otherwise all matrix elements start off at zero.  You
  501.        can teach an old matrix new tricks if you wish.  If 'No', then a new matrix  will  be
  502.        created.
  503.  
  504.             5.  Number of synapses is the number of non-zero synapses in  the  matrix.   The
  505.        rest  of  the  synapses  are  set  identically  to zero.  Execution speed is a linear
  506.        function of number of synapses because of the way the programs are  written  and  the
  507.        files  are  constructed.  This is because the matrices are not stored as matrices but
  508.        as lists of non-zero synaptic connections.  Fewer  synapses  means  less  computation
  509.        time.   Usually 50% connectivity is adequate for most systems we have investigated up
  510.        to now and seems to make the systems work better than full connectivity, for  reasons
  511.        we  now  have  some insight into.  It takes a while to set up the matrix, so expect a
  512.        wait.  If you set a connectivity of over 75%, you will get a warning message, telling
  513.        you  to  expect  a VERY long wait.  However, 100% connectivity is handled separately,
  514.        and sets up very fast.
  515.  
  516.             After the matrix is set up and the system  starts  learning,  the  program  will
  517.        print  out a progress report every 10 presentations.  It will tell you the cumulative
  518.        number of trials, the stimulus pair presented that  trial,  and  the  cosine  between
  519.        obtained  and  desired output vectors, so you can check on progress and make sure the
  520.        stimuli are being presented correctly.  After learning is over, the program will test
  521.        how  well  the  system  learned.  It will take each F in the F File in turn as input,
  522.        compute the output, and compare that output with the correct association by computing
  523.        the  cosine between the actual and correct answers.  A cosine of 1.0 is perfect.  The
  524.        length of the vectors is also computed.  The new neuron file will then be written  to
  525.        whatever  file is ASSIGNed to Noutfile.  Remember, in a 200 dimensional system, these
  526.        files are 633 blocks long so make sure you have enough free space in your account.
  527.  
  528.  
  529.        Using the Matrix.
  530.  
  531.             To test the behavior of a previously constructed matrix, RUN BSB.
  532.  
  533.             You must read in the matrix and the stimulus sets you wish  to  test.   This  is
  534.        done  automatically  in BSB.  The program will inform you of its progress and whether
  535.        or not it found the ASSIGNed files.  Success or  failure  in  retrieving  files  will
  536.        appear  on  the  status  line  (i.e.   the  bottom  line).  This line will appear and
  537.        disappear so you have to watch carefully if you are interested.  The status box  (the
  538.        top  five  lines)  will tell you how many stimuli are in the stimulus files (0 if the
  539.        files were not present) and whether neuron files are present.  (See Figure 1.)
  540.  
  541.  
  542.                                                                  Page 11
  543.  
  544.  
  545.             If the program cannot find the required files, it will tell you,  but  will  not
  546.        stop  the  program.  Some other input errors may abnormally terminate the program and
  547.        you will get a VMS error message.  If you exit the  program  abnormally,  by  hitting
  548.        <CTRL>C, or if you manage to do something fatal to the input, expect problems.  Since
  549.        your terminal has been reset to allow for  the  convenient  display  format,  strange
  550.        things may have happpened to your display, like having all input and output appear on
  551.        one line.  You can either write a small program to reset your terminal to  normal  or
  552.        run BSB again and simply type 'e' to E)xit from the program normally which will reset
  553.        your VT-100.  A useful short program is called RESET which will reset  your  terminal
  554.        after an abnormal exit from ITERATE:
  555.  
  556.             PROGRAM Reset (Input, Output);           {Resets terminal.}
  557.             BEGIN   {Reset.}
  558.             WRITE (CHR(27), '[1;24r');               {Restore_scrolling.}
  559.             WRITE (CHR(27), '[f', CHR (27), '[2J');  {Clear_screen.}
  560.             END.    {Reset.} 
  561.  
  562.  
  563.        The Brain State in a Box Model.
  564.  
  565.             To use the Brain-State-in-a-Box (BSB) Model, type  'B',  for  B)SB.   There  now
  566.        appear  new  prompt  and  command  lines.   There  are  a number of parameters of the
  567.        simulation which can be changed if necessary, but the system comes  with  appropriate
  568.        defaults for general use.
  569.  
  570.             Figure 3 shows the appearance of the initial BSB screen.
  571.  
  572.  
  573.  
  574.  
  575.                                                                  Page 12
  576.  
  577.  
  578.                             Figure 3.  Initial appearance of BSB Screen
  579.  
  580.                                        --------------------
  581.  
  582.        BSB>P)asses :  16     U)Limit: 1.3E+00  T)hreshold: 5.0E-01   Stim. #) : T 1
  583.        Mx: Synapses:  95   F)eedback: 7.0E-01      D)ecay: 6.5E-01    
  584.        RESTART         
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.        TF BSB Mx 1) 2) B)oth X)cute C)hange L)ist R)estart V)als Q)uit >
  603.  
  604.                                        --------------------
  605.  
  606.  
  607.             The variable x is the system state vector.  The actual equation being used is
  608.  
  609.             x(t + 1) = Decay * x(t) + Feedback * A x(t) + {f(0)}.
  610.  
  611.        Decay is a decay parameter which measures the length of duration of the  `short  term
  612.        memory'   of   the   system.   (If  there  was  no  feedback,  activity  would  decay
  613.        geometrically, since this fraction is usually less than one.) Feedback is a parameter
  614.        multiplying the feedback through the matrix.
  615.  
  616.             If it is enabled, the term {f(0)} will add the initial state vector to the state
  617.        vector  at  every  step.   It  could  correspond to a continous input from an earlier
  618.        processing stage.  This is related to what is  called  'clamping'  in  the  Boltzmann
  619.        machine  literature  and effectively holds non-zero input vector elements constant so
  620.        they cannot change in later iterations.  This option is used in the DRUGS simulation.
  621.        It is enabled if 'O' or 'o' is typed from the command line.
  622.  
  623.             The possible commands in the BSB system are:
  624.  
  625.                  C)hange.  Change the state vectors in the F File, G File or T  File.   (see
  626.             earlier description of this part of the program).
  627.  
  628.                  D)ecay allows change of the decay constant in the above equation.
  629.  
  630.                  F)eedback allows change of the feedback constants in the above equation.
  631.  
  632.                  L)ist.  List the vectors in the files.  If the display is in FG mode, the F
  633.             File and the G File will be listed.  If the display is in T mode, the T File and
  634.             the F File will be listed.  If more than 16 vectors are present, only sixteen at
  635.  
  636.  
  637.                                                                  Page 13
  638.  
  639.  
  640.             a  time  will  be shown.  The part displayed can be moved forward or backward by
  641.             typing 'F' or 'B'.  L)ist can be left by typing any character other than 'F'  or
  642.             'B'.
  643.  
  644.                  M)ode.  Changes the files L)isted from F and G to T and F or vice versa.
  645.  
  646.                  O)riginal stimulus.  This option adds the original stimulus vector to  each
  647.             iteration.   It is closely related to what is called `clamping' in the Boltzmann
  648.             machine literature since it effectively ensures that initial values never  decay
  649.             away  but  are  always  present at high amplitude.  A comment will appear on the
  650.             fifth line of the display if this option is in effect.  If O)  is  typed  again,
  651.             the option is cancelled and the original stimulus will not be added.
  652.  
  653.                  P)asses.  The number of iterations to be performed before the command  line
  654.             returns  and  you  can cease iterations or change parameters.  The default value
  655.             for P)asses is 16, the number of lines on  the  scrolling  portion  of  the  CRT
  656.             screen.
  657.  
  658.                  Q)uit.  Return to the highest command level.
  659.  
  660.                  R)estart the simulation with the initial stimulus.  Otherwise typing X)cute
  661.             will  simply  have the program continue what it was doing.  The left part of the
  662.             fourth status line  will  say  RESTART  is  the  system  will  start  from  zero
  663.             iterations.  Otherwise, the number of completed iterations will appear here.
  664.  
  665.                  T)hreshold allows change of the interpretation threshold.  When the  output
  666.             of  the  equation  above  is  generated it is simply a 200 dimensional vector of
  667.             floating point numbers.  In order to see what it is actually doing, this  vector
  668.             is interpreted, i.e.  turned back into an ASCII string.  This is done by letting
  669.             every value greater than +Threshold be give value +1 and every value  less  than
  670.             -Threshold  be  given  value  -1.   Values  nearer  to  zero  than plus or minus
  671.             threshold  are  considered  uninterpretable,  and  this   particular   byte   is
  672.             interpreted as the zero character, '_'.  Non-printing characters are represented
  673.             as '#'.  This thresholding algorithm is  only  for  the  operator's  convenience
  674.             (i.e.   it  eliminates  low amplitude ASCII garbage from the interpretations and
  675.             makes them easier to read) and it has no effect on the values in the vector that
  676.             are  used  for  the  next  iteration.   The  parity  bit  is  not  used  in  the
  677.             interpretation and it is not checked for correctness.
  678.  
  679.                  U)limit.  Allows change of the upper and lower limits in the BSB  equation.
  680.             Note upper and lower limit need not be the same.
  681.  
  682.                  V)alues.  Will display the values of the current state vector in  terms  of
  683.             tenths  of  upper  or  lower limit.  If the value is equal to the upper or lower
  684.             limit, +L or -L will appear.  A digit refers to tenths of the appropriate limit,
  685.             i.e.   +5  means  that  the  value of that element is between 0.5 and 0.6 of the
  686.             upper limit.
  687.  
  688.                  X)cute.  Start iterating the current state vector for  P)asses  iterations.
  689.             Will continue from where it stopped if not R)eset.
  690.  
  691.                  #) allows choice of  the  stimulus  number  to  be  used  for  staring  the
  692.             iterations if the system is R)eset.
  693.  
  694.  
  695.                                                                  Page 14
  696.  
  697.  
  698.        Examples
  699.  
  700.             Several examples of iterations using the matrices generated by a  disambiguation
  701.        simulation are shown next.  Figure 5 shows the pairs of associations.  Figure 6 shows
  702.        the results of the first 16 iterations and the next  16  iterations  on  'bat  ball'.
  703.        Figure  7  shows  the results of the first 16 and second 16 iterations on 'bat nite'.
  704.        (The common word, 'bat', is ambiguous and the context is able to choose  the  correct
  705.        meaning.  More details are given in Anderson and Murphy, 1986.)
  706.  
  707.             'Check' refers to the number of element values equal to the Upper or Lower limit
  708.        and  is  a  rough  measure  of the length of the vector and how rapidly the vector is
  709.        changing.  Positive feedback rapidly increases the number of saturated elements.
  710.  
  711.  
  712.                                                                  Page 15
  713.  
  714.  
  715.                                              Figure 5.
  716.                               Stimulus Set for Disambiguation Example
  717.  
  718.                                        --------------------
  719.        BSB Neural Net Program. 3-89   B)SB.  C)hange. E)xit. H)elp.
  720.        L)ist. M)ode. N)eurons. R)ead. S)ave. T)hreshold.  W)rite.  
  721.        Threshold:  5.0E-01  F File:    9  G File:    9  T File:   40
  722.        Synapses :  100  Display FG.
  723.  
  724.           F[ 1]. BaseballGameBat BallDiamd   G[ 1]. BaseballGameBat BallDiamd
  725.           F[ 2]. Vampire MythBat NiteDracu   G[ 2]. Vampire MythBat NiteDracu
  726.           F[ 3]. Animal  LiveBat WingFlyng   G[ 3]. Animal  LiveBat WingFlyng
  727.           F[ 4]. Poker   GameBeerTablCards   G[ 4]. Poker   GameBeerTablCards
  728.           F[ 5]. Tennis  GameCortBallRackt   G[ 5]. Tennis  GameCortBallRackt
  729.           F[ 6]. Dancing RichPrtyBallSocty   G[ 6]. Dancing RichPrtyBallSocty
  730.           F[ 7]. GeoShapeTwoDCrclSqreDiamd   G[ 7]. GeoShapeTwoDCrclSqreDiamd
  731.           F[ 8]. GeoModelTreDSphrBallTetra   G[ 8]. GeoModelTreDSphrBallTetra
  732.           F[ 9]. ExpJewelRichRubyOpalDiamd   G[ 9]. ExpJewelRichRubyOpalDiamd
  733.  
  734.  
  735.  
  736.  
  737.  
  738.        C>
  739.                                        --------------------
  740.  
  741.  
  742.                                                                  Page 16
  743.  
  744.  
  745.                                              Figure 6.
  746.                               Bat and Ball After 16 and 32 Iterations
  747.  
  748.  
  749.                                        --------------------
  750.  
  751.  
  752.        BSB>P)asses :  16     U)Limit: 1.3E+00  T)hreshold: 5.0E-01   Stim. #) : t 5
  753.        Mx: Synapses: 100   F)eedback: 2.0E-01      D)ecay: 9.0E-01
  754.        RESTART
  755.  
  756.             1.  ____________Bat Ball_____  Check:   0
  757.             2.  ____________Bat Ball_____  Check:   0
  758.             3.  ____________Bat Ball_____  Check:   0
  759.             4.  ____________Bat Ball_____  Check:   1
  760.             5.  ____________Bat Ball_____  Check:   5
  761.             6.  ____________Bat Ball_____  Check:  10
  762.             7.  _a__________Bat Ball_____  Check:  14
  763.             8.  _a__________Bat Ball_____  Check:  16
  764.             9.  _a__________Bat Ball_____  Check:  21
  765.            10.  _a__________Bat Ball_____  Check:  25
  766.            11.  _a_e________Bat Ball__a__  Check:  45
  767.            12.  _a_e________Bat Ball__a__  Check:  56
  768.            13.  _a_e_______eBat Ball__a__  Check:  67
  769.            14.  _a_e_______eBat Ball__a__  Check: 105
  770.            15.  Ba_e____G__eBat Ball__a__  Check: 108
  771.            16.  Ba_e____G__eBat Ball__a__  Check: 116
  772.  
  773.        TF BSB X)ecute C)hange L)ist R)estart V)als Q)uit > 
  774.                                        --------------------
  775.  
  776.  
  777.                                        --------------------
  778.  
  779.        BSB>P)asses :  16     U)Limit: 1.3E+00  T)hreshold: 5.0E-01   Stim. #) : t 5
  780.        Mx: Synapses: 100   F)eedback: 2.0E-01      D)ecay: 9.0E-01
  781.        It:  16
  782.  
  783.            17.  Ba_e____G__eBat Ball__a__  Check: 124
  784.            18.  Ba_e____G__eBat Ball__a__  Check: 129
  785.            19.  Ba_e____Ga_eBat Ball__a__  Check: 135
  786.            20.  Ba_e____Ga_eBat Ball__a__  Check: 138
  787.            21.  Ba_e____Ga_eBat BallD_a__  Check: 144
  788.            22.  Ba_e__l_Ga_eBat BallDia__  Check: 149
  789.            23.  Ba_e__l_Ga_eBat BallDia__  Check: 154
  790.            24.  Ba_e__l_GameBat BallDia__  Check: 159
  791.            25.  Base__llGameBat BallDiam_  Check: 161
  792.            26.  Base__llGameBat BallDiam_  Check: 170
  793.            27.  Baseb_llGameBat BallDiam_  Check: 174
  794.            28.  BaseballGameBat BallDiamd  Check: 179
  795.            29.  BaseballGameBat BallDiamd  Check: 181
  796.            30.  BaseballGameBat BallDiamd  Check: 187
  797.            31.  BaseballGameBat BallDiamd  Check: 192
  798.            32.  BaseballGameBat BallDiamd  Check: 197
  799.  
  800.        TF BSB X)ecute C)hange L)ist R)estart V)als Q)uit >
  801.                                        --------------------
  802.  
  803.  
  804.                                                                  Page 17
  805.  
  806.  
  807.                                              Figure 7
  808.                               Bat and Nite after 16 and 32 Iterations
  809.  
  810.                                        --------------------
  811.  
  812.        BSB>P)asses :  16     U)Limit: 1.3E+00  T)hreshold: 5.0E-01   Stim. #) : t16
  813.        Mx: Synapses: 100   F)eedback: 2.0E-01      D)ecay: 9.0E-01
  814.        RESTART
  815.  
  816.  
  817.             1.  ____________Bat Nite_____  Check:   0
  818.             2.  ____________Bat Nite_____  Check:   0
  819.             3.  ____________Bat Nite_____  Check:   0
  820.             4.  ____________Bat Nite_____  Check:   0
  821.             5.  ____________Bat Nite_____  Check:   0
  822.             6.  ____________Bat Nite_____  Check:   1
  823.             7.  ____________Bat Nite_____  Check:   4
  824.             8.  ____________Bat Nite_____  Check:  10
  825.             9.  ________M___Bat Ni_eD____  Check:  21
  826.            10.  _a______M___Bat Ni_eD____  Check:  24
  827.            11.  _a______M_t_Bat Ni_eD_a__  Check:  31
  828.            12.  _a_____ M_t_Bat Ni_eD_a__  Check:  51
  829.            13.  _a_____ M_t_Bat Ni_eD_a__  Check:  71
  830.            14.  _a_____ M_t_Bat Ni_eD_a__  Check: 100
  831.            15.  _a_____ M_t_Bat Ni_eD_a__  Check: 119
  832.            16.  _a_____ M_t_Bat Ni_eD_a__  Check: 123
  833.  
  834.        TF BSB X)ecute C)hange L)ist R)estart V)als Q)uit > 
  835.                                        --------------------
  836.  
  837.  
  838.                                        --------------------
  839.  
  840.        BSB>P)asses :  16     U)Limit: 1.3E+00  T)hreshold: 5.0E-01   Stim. #) : t16
  841.        Mx: Synapses: 100   F)eedback: 2.0E-01      D)ecay: 9.0E-01
  842.        It:  16
  843.  
  844.            17.  _a__i__ M_t_Bat NiteD_a__  Check: 127
  845.            18.  _am_i_e Myt_Bat NiteD_a__  Check: 141
  846.            19.  _am_i_e MythBat NiteD_ac_  Check: 147
  847.            20.  _ampire MythBat NiteDracu  Check: 158
  848.            21.  Vampire MythBat NiteDracu  Check: 166
  849.            22.  Vampire MythBat NiteDracu  Check: 169
  850.            23.  Vampire MythBat NiteDracu  Check: 171
  851.            24.  Vampire MythBat NiteDracu  Check: 173
  852.            25.  Vampire MythBat NiteDracu  Check: 180
  853.            26.  Vampire MythBat NiteDracu  Check: 193
  854.            27.  Vampire MythBat NiteDracu  Check: 199
  855.            28.  Vampire MythBat NiteDracu  Check: 200
  856.        >> Fully limited. Finished.
  857.  
  858.  
  859.  
  860.  
  861.  
  862.        TF BSB X)ecute C)hange L)ist R)estart V)als Q)uit > 
  863.                                        --------------------
  864.  
  865.  
  866.                                                                  Page 18
  867.  
  868.  
  869.        Programming the System.
  870.  
  871.             The system  as  described  is  primarily  interactive.   However,  it  is  often
  872.        convenient,  when  doing a systematic study of a system, to look at a great many test
  873.        vectors.  This release of the programs does not  allow  non-interactive  programming.
  874.        However,  VMS  command  files will allow you to do this conveniently from outside the
  875.        program.   Command  files  are  files  of  system  and  program  commands  that   are
  876.        automatically executed when prefaced with '@'.  System commands are preceded with '$'
  877.        and lines to serve as input to a program are simply typed.
  878.  
  879.             Suppose we had a set of say, five test stimuli, an autoassociative  system,  and
  880.        we  wished to iterate every test stimulus 50 times and save the output of the program
  881.        for future study.  Figure 8 shows a simple command file  to  accomplish  this.   This
  882.        command   file   expects   to  find  all  the  appropriate  files  in  the  directory
  883.        drb2:[anderson.code].
  884.  
  885.             The first lines make all the assignments, and since  they  are  system  commands
  886.        they are preceded by a $.
  887.  
  888.             The line
  889.  
  890.                  $assign drb2:[anderson.code]all159.out sys$output
  891.  
  892.        assigns the output from the program to a  file  all159.out  which  can  be  typed  or
  893.        studied with a text editor.
  894.  
  895.             Then BSB is run and the next lines form input to the program.  We are not  using
  896.        a VT100, so the first line is n)o.  Then the input files are l)isted.  We want to use
  897.        the b)sb model.  In this case, we want each p)ass to consist of 50 iterations and the
  898.        o)riginal  input  vector  to be added after each iteration.  Then test stimuli  's t1
  899.        through t5 are successively x)ecuted, the system being r)eset  after  each  new  test
  900.        stimulus.  Then b)sb is q)uit and the program e)xited.
  901.  
  902.             The output will be found in drb2:[anderson.code]all159.out.
  903.  
  904.             This convenient technique allows large studies and parameter variants to be  run
  905.        in batch mode as well by using the VMS SUBMIT command with the command file.
  906.  
  907.  
  908.                                                                  Page 19
  909.  
  910.  
  911.                                              Figure 8
  912.  
  913.        $set default drb2:[anderson.code]
  914.        $assign f159.stm ffile
  915.        $assign g159.stm gfile
  916.        $assign ti159.stm tfile
  917.        $assign n159.neu nfile
  918.        $assign [anderson.test]all159.out sys$output 
  919.        $run bsb 
  920.        n
  921.        l
  922.        m
  923.        l
  924.        b
  925.        p
  926.        50
  927.        o
  928.        #
  929.        t1
  930.        x
  931.        r
  932.        #
  933.        t2
  934.        x
  935.        r
  936.        #
  937.        t3
  938.        x
  939.        r
  940.        #
  941.        t4
  942.        x
  943.        r
  944.        #
  945.        t5
  946.        x
  947.        r
  948.        q
  949.        e
  950.  
  951.  
  952.        Demonstration Command Files
  953.  
  954.             Because it is sometimes convenient to be able to  regenerate  matrices  or  make
  955.        stimulus files, we have provided command files for three demonstrations.
  956.  
  957.             We have already given examples of one demonstration, on lexical  disambiguation.
  958.        There  are  two other neural net demonstrations available.  One is a simple drug data
  959.        base, which contains information about drugs, diseases and microorganisms.  There  is
  960.        also  a demonstration of an associative system learning Ohm's Law, which can 'reason'
  961.        about functional dependencies.
  962.  
  963.             Each of the demonstrations has three command files associated with it:
  964.  
  965.  
  966.                                                                  Page 20
  967.  
  968.  
  969.  
  970.        Demonstration   Generates                  Generates                Runs 
  971.                        Matrix                     Stimuli                  Demo
  972.                        (.neu files)               (.stm files)
  973.                        (Uses ASSOCIATE)           (Uses BSB)               (Uses BSB)
  974.  
  975.  
  976.        Disambiguation: learndisambiguation.com     makedisambiguation.com   disambiguation.com
  977.  
  978.        Ohm's Law:      learnohms.com               makeohms.com             ohms.com
  979.  
  980.        Drug data base: learndrugs.com              makedrugs.com            drugs.com
  981.  
  982.        (Sometimes  these  command  files  may  have  shorter  file  names,  by  an   obvious
  983.        transformation,  such as, learndrugs.com = ldrugs.com.  Some operating systems do not
  984.        accept long file names.) It may take 10 or 20 minutes of MicroVAX CPU  time  to  make
  985.        the  connection  matrices, so beware!  Making the stimulus files is quite rapid.  The
  986.        command files are basically strings of keystrokes, and it may be  of  some  value  to
  987.        have complete working `scripts' for some common operations of BSB and ASSOCIATE
  988.  
  989.             Ohms and Drugs are described at length in a manuscript entitled `DEMOS.RNO' (the
  990.        RUNOFF  formatted  source) and `DEMOS.MEM', the final version, which is complete with
  991.        escape sequences for an LA-100 printer.  It contains most of the  material  presented
  992.        in  the  demonstrations.   A  compressed  version  of  this  manuscript  appeared  in
  993.        (Anderson, 1986).
  994.  
  995.  
  996.                                           Acknowledgement
  997.  
  998.  
  999.             This research was primarily supported  by  National  Science  Foundation  Grants
  1000.        BNS-82-14728  and  BNS-85-18675  to  James  Anderson,  Department  of  Cognitive  and
  1001.        Linguistic Sciences, Brown University, Providence,  RI,  02912.   Please  acknowledge
  1002.        this grant if you make use of these programs in published material.
  1003.  
  1004.  
  1005.                                                                  Page 21
  1006.  
  1007.  
  1008.                                             References
  1009.  
  1010.  
  1011.  
  1012.             J.A.  Anderson, Neural models for  cognitive  computation.   IEEE  Transactions:
  1013.        Systems,  Man,  and  Cybernetics.   1983,  SMC-13, 799-815.  (Reprinted in V.  Vemuri
  1014.        (Ed.), Artificial Neural Networks:  Theoretical Concepts, Washington,  DC:   Computer
  1015.        Society Press of the IEEE, 1988.)
  1016.  
  1017.             J.A.   Anderson,  Cognitive  Capabilities  of  a   Parallel   System.    In   E.
  1018.        Bienenstock,  F.   Foglemann,  and  G.   Weisbuch.   (Eds.)  Disordered  Systems  and
  1019.        Biological Organization, Berlin:  Springer, 1986.
  1020.  
  1021.             J.A.  Anderson and M.  Mozer, Categorization and  selective  neurons.   In:   G.
  1022.        Hinton  and  J.  Anderson (Eds.), Parallel Models for Associative Memory.  Hillsdale,
  1023.        New Jersey:  Erlbaum Associates, 1981.  Revised Edition, 1988.
  1024.  
  1025.             J.A.  Anderson and G.L.  Murphy, Psychological Concepts in  a  Parallel  System.
  1026.        In  J.D.   Farmer,  A.   Lapedes,  N.   Packard, and B.  Wendroff.  (Eds.) Evolution,
  1027.        Games, and Learning..  New York:  North Holland, 1986.  (With Gregory L.  Murphy).
  1028.  
  1029.             J.A.  Anderson, J.  Silverstein, S.  Ritz, and R.  Jones, Distinctive  features,
  1030.        categorical  perception  and  probability  learning:   some  applications of a neural
  1031.        model.  Psychological Review, 1978, 85, 597-603.  (Reprinted in J.A.  Anderson and E.
  1032.        Rosenfeld (Eds.), Neurocomputing, Cambridge, MA:  MIT Press, 1988).
  1033.  
  1034.  
  1035.                                                                  Page 22
  1036.  
  1037.  
  1038.                                              Appendix
  1039.  
  1040.                                         Naming Conventions:
  1041.  
  1042.             1) Pascal source programs are given the  extension  .PAS  (of  course)  and  the
  1043.        executable files .EXE.
  1044.  
  1045.             2) BSB.PAS uses a number of INCLUDEd files written in Pascal,  which  are  given
  1046.        the extension .INC.
  1047.  
  1048.             3) Files containing sets of stimulus vectors are given the extension .STM.  They
  1049.        are  Pascal  records  containing a 60 character header and a 200 dimensional floating
  1050.        point array.
  1051.  
  1052.             4) Files containing matrices (actually files of a Pascal  RECORD  type  Neuron),
  1053.        are given the extension .NEU.  They are Pascal records containing 200 `Neurons' which
  1054.        contain some constants and an array of `Synapses'.
  1055.  
  1056.             5) Files containing text are given the extension .RNO if the text is  in  RUNOFF
  1057.        format and .MEM if it has formatted.
  1058.  
  1059.             6) Command files are given the extension .COM.
  1060.  
  1061.             7) Program output to a terminal is given the extension .OUT.
  1062.